package model

import (
	"time"

	"gorm.io/gorm"
)

// Directory 目录模型
type Directory struct {
	ID        uint           `gorm:"primarykey" json:"id"`
	Name      string         `gorm:"size:100;not null" json:"name"`    // 目录名称
	ParentID  uint           `gorm:"index" json:"parent_id,omitempty"` // 父目录ID，顶级目录为null
	UserID    uint           `gorm:"index;not null" json:"user_id"`    // 所属用户ID
	Remark    string         `gorm:"size:500" json:"remark"`           // 目录备注
	IsPublic  bool           `gorm:"default:false" json:"is_public"`   // 是否公开目录（游客可访问）
	CreatedAt time.Time      `json:"created_at"`
	UpdatedAt time.Time      `json:"updated_at"`
	DeletedAt gorm.DeletedAt `gorm:"index" json:"-"`

	// 关联关系
	//Parent   *Directory  `gorm:"foreignKey:ParentID" json:"parent,omitempty"`
	//Children []Directory `gorm:"foreignKey:ParentID" json:"children,omitempty"`
	User  *User  `gorm:"foreignKey:UserID" json:"user,omitempty"`
	Files []File `gorm:"foreignKey:DirectoryID" json:"files,omitempty"`
}
